package com.core.gig.negocio;


import java.io.Serializable;
import java.util.Collection;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;


@Entity
@Table(name = "TB_CLIENTE")
@SequenceGenerator(name = "SQ_CLIENTE", sequenceName = "SQ_CLIENTE")
public class Cliente implements Serializable
{

	private static final long serialVersionUID = -8650475306470763099L;
	private int id;
	private String razaoSocial;
	private String nomeFantasia;
	private String cnpj;
	private String inscrEstadual;
	private String inscrMunicipal;
	private String logradouro;
	private String bairro;
	private String cidade;
	private String estado;
	private String cep;
	private String telefone;
	private String email;
	private String contato;
	private String observacoes;
	private double desconto;
	private Collection<Orcamento> orcamentos;

	@Id
	@Column (name = "ID")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SQ_CLIENTE")
	public int getId()
	{
		return id;
	}

	@Column(name = "RAZAO_SOCIAL", nullable = false, length = 100)
	public String getRazaoSocial()
	{
		return razaoSocial;
	}

	@Column(name = "NOME_FANTASIA", nullable = true, length = 100)
	public String getNomeFantasia()
	{
		return nomeFantasia;
	}

	@Column(name = "CNPJ", nullable = false, length = 18)
	public String getCnpj()
	{
		return cnpj;
	}

	@Column(name = "INSCR_ESTADUAL", nullable = true, length = 11)
	public String getInscrEstadual()
	{
		return inscrEstadual;
	}

	@Column(name = "INSCR_MUNICIPAL", nullable = true, length = 10)
	public String getInscrMunicipal()
	{
		return inscrMunicipal;
	}

	@Column(name = "LOGRADOURO", nullable = false, length = 255)
	public String getLogradouro()
	{
		return logradouro;
	}

	@Column(name = "BAIRRO", nullable = false, length = 100)
	public String getBairro()
	{
		return bairro;
	}

	@Column(name = "CIDADE", nullable = false, length = 100)
	public String getCidade()
	{
		return cidade;
	}

	@Column(name = "ESTADO", nullable = false, length = 2)
	public String getEstado()
	{
		return estado;
	}

	@Column(name = "CEP", nullable = false, length = 10)
	public String getCep()
	{
		return cep;
	}

	@Column(name = "TELEFONE", nullable = true, length = 12)
	public String getTelefone()
	{
		return telefone;
	}

	@Column(name = "EMAIL", nullable = true, length = 50)
	public String getEmail()
	{
		return email;
	}

	@Column(name = "CONTATO", nullable = true, length = 50)
	public String getContato()
	{
		return contato;
	}

	@Column(name = "OBSERVACOES", nullable = true, length = 255)
	public String getObservacoes()
	{
		return observacoes;
	}

	@Column(name = "DESCONTO", nullable = false, precision=2)
	public double getDesconto()
	{
		return desconto;
	}

	@OneToMany(mappedBy = "cliente")
	public Collection<Orcamento> getOrcamentos()
	{
		return orcamentos;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public void setRazaoSocial(String razaoSocial)
	{
		this.razaoSocial = razaoSocial;
	}

	public void setNomeFantasia(String nomeFantasia)
	{
		this.nomeFantasia = nomeFantasia;
	}

	public void setCnpj(String cnpj)
	{
		this.cnpj = cnpj;
	}

	public void setInscrEstadual(String inscrEstadual)
	{
		this.inscrEstadual = inscrEstadual;
	}

	public void setInscrMunicipal(String inscrMunicipal)
	{
		this.inscrMunicipal = inscrMunicipal;
	}

	public void setLogradouro(String logradouro)
	{
		this.logradouro = logradouro;
	}

	public void setBairro(String bairro)
	{
		this.bairro = bairro;
	}

	public void setCidade(String cidade)
	{
		this.cidade = cidade;
	}

	public void setEstado(String estado)
	{
		this.estado = estado;
	}

	public void setCep(String cep)
	{
		this.cep = cep;
	}

	public void setTelefone(String telefone)
	{
		this.telefone = telefone;
	}

	public void setEmail(String email)
	{
		this.email = email;
	}

	public void setContato(String contato)
	{
		this.contato = contato;
	}

	public void setObservacoes(String observacoes)
	{
		this.observacoes = observacoes;
	}

	public void setDesconto(double desconto)
	{
		this.desconto = desconto;
	}

	public void setOrcamentos(Collection<Orcamento> orcamentos)
	{
		this.orcamentos = orcamentos;
	}
}